package com.woniu.factorys;

import com.woniuxy.entity.Person;
import com.woniuxy.test.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * @Author: 马宇航
 * @Do: 伊甸工厂！
 * @DateTime: 22/08/17/0017 15:46
 * @Component: 成都蜗牛学苑
 **/
public class PersonFactory {
    /**
     * 直接通过配置文件创建对象，不手动指定具体对象是谁！
     * ChangeLog : 1. 创建 (22/08/17/0017 15:47 [马宇航]);
     *
     * @return com.woniuxy.entity.Person
    */
    public static Person makePerson(){
        //怎么读取配置文件？
        Properties properties = new Properties();
        //需要一个输入流
        InputStream inputStream = Test.class.getResourceAsStream("../test/person.properties");
        Person person = null;
        try {
            properties.load(inputStream);
            //properties这个对象中，有没有办法获取到文件流中的内容？通过key获取全限定类名
            String str = properties.getProperty("person");
            person = (Person) Class.forName(str).newInstance();
        } catch (IOException | ClassNotFoundException | InstantiationException | IllegalAccessException e) {
            e.printStackTrace();
        }
        return person;
    }
}
